package excption

import "fmt"

type BizError interface {
	error
	Code() int32
}

type BizMessage struct {
	Code uint32 `json:"code"`
	Msg  string `json:"msg"`
}

func NewErrCodeMsg(errCode uint32, errMsg string) *BizMessage {
	return &BizMessage{Code: errCode, Msg: errMsg}
}
func NewErrCode(errCode uint32) *BizMessage {
	return &BizMessage{Code: errCode, Msg: MapErrMsg(errCode)}
}

func NewErrMsg(errMsg string) *BizMessage {
	return &BizMessage{Code: ServerCommonError, Msg: errMsg}
}

// GetErrCode 返回给前端的错误码
func (e *BizMessage) GetErrCode() uint32 {
	return e.Code
}

// GetErrMsg 返回给前端显示端错误信息
func (e *BizMessage) GetErrMsg() string {
	return e.Msg
}

func (e *BizMessage) Error() string {
	return fmt.Sprintf("ErrCode:%d，ErrMsg:%s", e.Code, e.Msg)
}
